/**
 * 接口返回参数转换成业务规则组件接受的值
 * 基数转折点	奖金占毛利比例
      10%	    10.00%	    D6-range1	E6-ext1
      50%	    30.00%	    D7-range2	E7-ext2

    固定提成部分
    序号	基数	比例
    1	合同额	 0.50%	C23-ext3

    信息费（带进业务信息并成功签约且收到预付款）
    序号	基数	固定比例	固定比例基准额	每下幅额	每下幅增加额
    1	合同额	   4.00%	￥500,000	   ￥50,000	 ￥100
              C28-ext4	D28-ext5	E28-ext6	F28-ext7
 */
// isPartTime = true 兼职业务员
export const yewuToTable = (param, isPartTime) => {
  // 奖金毛利
  const range1 = param.yewuBouns.base.start
  const range2 = param.yewuBouns.base.end
  const ext1 = param.yewuBouns.bouns.start
  const ext2 = param.yewuBouns.bouns.end
  // 固定提成
  const ext3 = param.staticBonus.rate
  // 信息费
  const ext4 = param.msgFee.rate
  const ext5 = param.msgFee.contrctAmount
  const ext6 = param.msgFee.contrctStep
  const ext7 = param.msgFee.bonusStep
  if (isPartTime) {
    if (!(range1 && range2 && ext1 && ext2 && ext3 && ext4 && ext5 && ext6 && ext7)) {
      return false
    }
    return { range1, range2, ext1, ext2, ext3, ext4, ext5, ext6, ext7 }
  } else {
    if (!(range1 && range2 && ext1 && ext2 && ext3)) {
      return false
    }
    return { range1, range2, ext1, ext2, ext3 }
  }
}
/**
 * 业务规则组件的值转换接口参数
 */
export const tableToYewu = (param) => {
  const { range1, range2, ext1, ext2, ext3, ext4, ext5, ext6, ext7 } = param || {}

  const yewuBouns = {
    base:
      { start: range1, end: range2 },
    bouns: { start: ext1, end: ext2 }
  }
  const msgFee = {
    contrctAmount: ext5,
    rate: ext4,
    contrctStep: ext6,
    bonusStep: ext7
  }
  const staticBonus = { rate: ext3 }
  return { yewuBouns, msgFee, staticBonus }
}
/**
 * 工程规则提成
 *  硬件
 *  基数转折点  比例
    200000	1.50%	D3-range1	E3-ext1
    1000000	0.50%	D4-range2	E4-ext2
    2000000	0.30%	D5-range3	E5-ext3
            0.20%		        E6-ext4
    软件
    基数转折点 比例
    100000	1.50%	D10-range4	E10-ext5
    300000	1.00%	D11-range5	E11-ext6
    500000	0.80%	D12-range6	E12-ext7
            0.50%		          E13-ext8

    发放标准 毛利奖金
    35.00%	N3-ext9
    20.00%	N4-ext10
    25.00%	N5-ext11
    20.00%	N6-ext12

  项目经理奖金	  6.00%	以毛利额为基准	L8-ext13
  项目组毛利奖金	1.00%	以毛利额为基准	L9-ext14
  项目组固定提成	0.30%	以合同额为基准	L10-ext15

 */
export const enginerToTable = (param) => {
  // 硬件
  const [ext1, ext2, ext3, ext4] = param.hardware.rates
  const [range1, range2, range3] = param.hardware.steps
  // 软件
  const [ext5, ext6, ext7, ext8] = param.software.rates
  const [range4, range5, range6] = param.software.steps
  // 发放标准
  const [ext9, ext10, ext11, ext12] = param.bonus.rates
  // 提成比率
  const { ext13, ext14, ext15 } = param.rates

  if (!(range1 && range2 && range3 && range4 && range5 && range6 && ext1 &&
    ext2 && ext3 && ext4 && ext5 && ext6 && ext7 &&
    ext8 && ext9 && ext10 && ext11 && ext12 && ext13 && ext4 && ext15
  )) {
    return false
  }

  return {
    range1,
    range2,
    range3,
    range4,
    range5,
    range6,
    ext1,
    ext2,
    ext3,
    ext4,
    ext5,
    ext6,
    ext7,
    ext8,
    ext9,
    ext10,
    ext11,
    ext12,
    ext13,
    ext14,
    ext15
  }
}

export const tableToEnginer = (param) => {
  const {
    range1,
    range2,
    range3,
    range4,
    range5,
    range6,
    ext1,
    ext2,
    ext3,
    ext4,
    ext5,
    ext6,
    ext7,
    ext8,
    ext9,
    ext10,
    ext11,
    ext12,
    ext13,
    ext14,
    ext15
  } = param || {}

  const hardware = {
    count: 4,
    rates: [ext1, ext2, ext3, ext4],
    steps: [range1, range2, range3]
  }

  const software = {
    count: 4,
    rates: [ext5, ext6, ext7, ext8],
    steps: [range4, range5, range6]
  }

  const bonus = {
    count: 4,
    rates: [ext9, ext10, ext11, ext12]
  }

  const rates = {
    ext13,
    ext14,
    ext15
  }

  return { hardware, software, bonus, rates }
}
/**
考核方式
  序号	组成	发放条件	实际发放比例	完成否	发放标准
  1	第一部分	完成项目立项时设定的工期目标	  40.00%	是	40.00%	 F12-ext2
  2	第二部分	完成项目立项时设定的质量目标	  40.00%	是	40.00%	 F13-ext3
  3	第三部分	完成项目的其它要求根据         12.00%	 0.6	20.00%	F14-ext4
              《项目审查表》完成情况
  */
export const prodToTable = (param) => {
  const [ext4, ext5, ext6, ext7, ext8] = param.statusRates.rate
  const [ext1, ext2, ext3] = param.rates
  if (!(ext1 && ext2 && ext3 && ext4 && ext5 && ext6 && ext7 && ext8)) {
    return false
  }
  return { ext1, ext2, ext3, ext4, ext5, ext6, ext7, ext8, job2: undefined }
}

export const tableToProd = (param) => {
  const { ext1, ext2, ext3, ext4, ext5, ext6, ext7, ext8 } = param || {}
  // 老得 新的
  // const rate = ext1
  const rates = [ext1, ext2, ext3]
  const statusRates = [ ext4, ext5, ext6, ext7, ext8 ]
  return { statusRates, rates }
}
